def log_funcall(func_name, *args, *kwargs):
    arg_string = ', '.join(map(repr,args))
    kwarg_string = ', '.join((
        '%s=%r' % (key, val) for key, val in kwargs.items()))
    call_string = ', '.join((arg_string, kwarg_string))
    return func_name + '(' call_string + ')'